package cn.kmbeast.service.impl;

import cn.kmbeast.mapper.TagsMapper;
import cn.kmbeast.pojo.api.ApiResult;
import cn.kmbeast.pojo.api.Result;
import cn.kmbeast.pojo.dto.query.extend.TagsQueryDto;
import cn.kmbeast.pojo.entity.Tags;
import cn.kmbeast.service.TagsService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 标签业务逻辑的实现
 */
@Service
public class TagsServiceImpl implements TagsService {

    @Resource
    private TagsMapper tagsMapper;


    /**
     * 标签的保存
     * @param tags 接受标签对象
     * @return 返回通用结果集
     */
    @Override
    public Result<Void> save(Tags tags) {
        tagsMapper.save(tags);
        return ApiResult.success();
    }

    /**
     * 根据id批量删除
     * @param ids  tags的id列表
     * @return 返回通用结果集
     */
    @Override
    public Result<Void> batchDelete(List<Long> ids) {
        tagsMapper.batchDelete(ids);
        return ApiResult.success();
    }


    /**
     * 对标签进行修改
     * @param tags 接受标签对象
     * @return 返回通用结果集
     */
    @Override
    public Result<Void> update(Tags tags) {
        tagsMapper.update(tags);
        return ApiResult.success();
    }

    /**
     * 标签的查询( 分页 )
     * @param tagsQueryDto 接受tags对应的查询类
     * @return 返回通用结果集
     */
    @Override
    public Result<List<Tags>> query(TagsQueryDto tagsQueryDto) {
        //按条件查询   返回查询到的数据
        List<Tags> query = tagsMapper.query(tagsQueryDto);
        //按条件查询  返回查询的总数
        Integer totalCount = tagsMapper.queryCount(tagsQueryDto);

        return ApiResult.success(query,totalCount);
    }
}
